﻿using System.Collections.Generic;
using System.Net;

namespace SocketHelper.Models
{
    enum CommunicationType
    {
        TcpServer,
        TcpClient,
        UdpClient
    }
    public static class Faker
    {
        //获取通信类型
        public static List<string> GetCommunicationType()
        {
            return new List<string>
            {
                "TcpServer",
                "TcpClient",
                "UdpClient",
                "Modbus",
                "WebSocket",
                "Rpc",
                "WebApi",
                "JsonRpc",
            };

        }
        //获取ip地址
        public static List<string> GetIps()
        {
            // 获取本机所有 IP 地址
            List<string> ips = new List<string>();

            ips.Add("127.0.0.1");
            //Dns.GetHostEntry()：这个方法接收一个主机名作为参数，并返回一个 IPHostEntry 对象，该对象包含了与该主机名相关的网络信息，例如 IP 地址、别名等。
            //AddressList：这是 IPHostEntry 对象的一个属性，它是一个 IPAddress[] 类型的数组，包含了与主机名相关联的所有 IP 地址
            foreach (var ip in Dns.GetHostEntry(Dns.GetHostName()).AddressList)
            {
                //ip:IPAddress对象
                //ip.AddressFamily：这是 IPAddress 对象的一个属性，它表示 IP 地址的地址族，也就是 IP 地址的类型
                //System.Net.Sockets.AddressFamily.InterNetwork：枚举类型，表示 IPv4 地址
                if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    ips.Add(ip.ToString());
                }
            }

            ips.Add("0.0.0.0");

            return ips;
        }
    }

    
}
